home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 2008 September
/
PCWorld_2008-09_cd.bin
/
v cisle
/
sadanastroju
/
greasemonkey-0.8.20080609.0-fx.xpi
/
chrome
/
greasemonkey.jar
/
chromeFiles
/
content
/
miscapis.js
< prev
next >
Wrap
Text File
|
2008-06-09
|
3KB
|
105 lines
function GM_ScriptStorage(script) {
this.prefMan = new GM_PrefManager(["scriptvals.",
script.namespace,
"/",
script.name,
"."].join(""));
}
GM_ScriptStorage.prototype.setValue = function(name, val) {
if (!GM_apiLeakCheck("GM_setValue")) {
return;
}
this.prefMan.setValue(name, val);
};
GM_ScriptStorage.prototype.getValue = function(name, defVal) {
if (!GM_apiLeakCheck("GM_getValue")) {
return;
}
return this.prefMan.getValue(name, defVal);
};
function GM_Resources(script){
this.script = script;
}
GM_Resources.prototype.getResourceURL = function(name) {
if (!GM_apiLeakCheck("GM_getResourceURL")) {
return;
}
return this.getDep_(name).dataContent;
};
GM_Resources.prototype.getResourceText = function(name) {
if (!GM_apiLeakCheck("GM_getResourceText")) {
return;
}
return this.getDep_(name).textContent;
};
GM_Resources.prototype.getDep_ = function(name) {
var resources = this.script.resources;
for (var i = 0, resource; resource = resources[i]; i++)
if (resource.name == name)
return resource;
throw new Error("No resource with name: " + name); // NOTE: Non localised string
};
function GM_ScriptLogger(script) {
var namespace = script.namespace;
if (namespace.substring(namespace.length - 1) != "/") {
namespace += "/";
}
this.prefix = [namespace, script.name, ": "].join("");
}
GM_ScriptLogger.prototype.log = function(message) {
GM_log(this.prefix + message, true);
};
// Based on Mark Pilgrim's GM_addGlobalStyle from
// http://diveintogreasemonkey.org/patterns/add-css.html. Used by permission
// under GPL: http://diveintogreasemonkey.org/license/gpl.html
function GM_addStyle(doc, css) {
var head, style;
head = doc.getElementsByTagName("head")[0];
if (!head) { return; }
style = doc.createElement("style");
style.type = "text/css";
style.innerHTML = css;
head.appendChild(style);
}
function GM_console(script) {
// based on http://www.getfirebug.com/firebug/firebugx.js
var names = [
"debug", "warn", "error", "info", "assert", "dir", "dirxml",
"group", "groupEnd", "time", "timeEnd", "count", "trace", "profile",
"profileEnd"
];
for (var i=0, name; name=names[i]; i++) {
this[name] = function() {};
}
// Important to use this private variable so that user scripts can't make
// this call something else by redefining <this> or <logger>.
var logger = new GM_ScriptLogger(script);
this.log = function() {
logger.log(
Array.prototype.slice.apply(arguments).join("\n")
);
};
}
GM_console.prototype.log = function() {
};